package com.oasys.dao;

import com.oasys.entity.dto.RoleUserDto;
import com.oasys.entity.po.RoleMenuPo;
import com.oasys.entity.po.RolePo;
import com.oasys.entity.vo.RoleVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description: TODO
 * @Author: mis_wu
 * @Date: 2022/5/26
 **/
@Mapper
public interface RoleMapper {

    /**
     * 获取角色对应用户信息
     * @return
     */
    List<RoleUserDto> getRoleUserInfo();

    /**
     * 查询菜单是否存在
     * @param roleId
     * @param menuId
     * @return
     */
    RoleMenuPo getRoleMenus(@Param("roleId") Long roleId, @Param("menuId") Long menuId);

    /**
     * 添加菜单
     * @param id
     * @param roleId
     * @param menuIds
     * @return
     */
    Boolean saveMenuRoleInfo(@Param("id") Long id,@Param("roleId") Long roleId, @Param("menuId")Long menuIds);

    /**
     * 查询角色编码
     * @param userId id
     * @return int
     */
    Integer getRoleNo(@Param("userId") Long userId);

    /**
     * 获取所有角色
     * @param roleName name
     * @return list
     */
    List<RolePo> getAllRoleInfo(@Param("name") String roleName);

    /**
     * 获取角色编码
     * @return
     */
    Integer getMaxRoleNo();

    /**
     * add role
     * @param rolePo po
     * @return boolean
     */
    Boolean saveRole(@Param("po") RolePo rolePo);

    /**
     * 修改角色
     * @param roleVo vo
     * @return boolean
     */
    Boolean updateRole(@Param("vo") RoleVo roleVo);

    /**
     * 删除角色
     * @param roleId id
     * @return boolean
     */
    Boolean delRole(@Param("roleId") Long roleId);

}
